package com.it.design.withOutFacotryDesignMode;
/*
*
* 工厂设计模式：主要是为了解耦，不让在代码中直接创造对象，如果要切换实现类，业务代码不会受到影响
* 业务代码不变化，
* 改变对象的实现类，通过配置文件进行解耦
* spring使用的就是工厂+xml+反射
* */
public class WithOutFacotryDesignMode {
    public static void main(String[] args) {
        Person person = PersonFacotry.createPerson();
        person.execute();
    }

    public interface Person {
        void execute();
    }

    public static class PersonImpl1 implements Person {
        @Override
        public void execute() {
            System.out.println("我是person实现类");
        }
    }
    public static class PersonImpl2 implements Person {
        @Override
        public void execute() {
            System.out.println("我是person实现类");
        }
    }
    public static class PersonFacotry {
        public static Person createPerson() {
            return new PersonImpl2();//可以通过配置文件进行修改
        }
    }
}
